package com.guilin.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.guilin.common.annotation.Excel;
import com.guilin.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;


/**
 * 问卷调查记录返回值对象VO
 *
 * @author xiaoqi
 * @date 2025-06-24
 */
public class SurveyResponseVO extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /** 序号 */
    private Long id;

    /** 问卷调查编号 */
    @Excel(name = "问卷调查编号")
    private String responseCode;

    /** 问卷调查用户ID */
    private Long userId;

    /** 问卷调查用户姓名 */
    @Excel(name = "问卷调查用户")
    private String userName;

    /** 所属问卷ID */
    private Long questionnaireId;

    /** 问卷表名称 */
    @Excel(name = "问卷表")
    private String questionnaireName;

    /** 问卷调查时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "问卷调查时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date responseTime;


    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getResponseCode() {
        return responseCode;
    }

    public void setResponseCode(String responseCode) {
        this.responseCode = responseCode;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public Long getQuestionnaireId() {
        return questionnaireId;
    }

    public void setQuestionnaireId(Long questionnaireId) {
        this.questionnaireId = questionnaireId;
    }

    public String getQuestionnaireName() {
        return questionnaireName;
    }

    public void setQuestionnaireName(String questionnaireName) {
        this.questionnaireName = questionnaireName;
    }

    public Date getResponseTime() {
        return responseTime;
    }

    public void setResponseTime(Date responseTime) {
        this.responseTime = responseTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("responseCode", getResponseCode())
                .append("userId", getUserId())
                .append("userName", getUserName())
                .append("questionnaireId", getQuestionnaireId())
                .append("questionnaireName", getQuestionnaireName())
                .append("responseTime", getResponseTime())
                .append("createTime", getCreateTime())
                .append("updateTime", getUpdateTime())
                .toString();
    }
}
